package controlador;

import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import modelo.DAODepto;
import modelo.DAOFunc;
import modelo.Departamento;
import modelo.Funcionario;

public class OpListarFunc extends Operacao {
	public void executar(HttpServletRequest request)
	throws Exception {
		String radio = request.getParameter("rdoTipo");
		if (radio == null) {
			setProxPagina("/ListarFunc.jsp");
		} else {
	        try {
        		Vector funcsemp; // = new Vector();
        		Vector deptos; // = new Vector();
	        	if (radio.equals("empresa")) {
					deptos = DAODepto.listarDeptos();    		
					funcsemp = DAOFunc.listarFuncsEmp(); 
		        	if (funcsemp==null ||deptos==null ) {
		        			throw new Exception("erro na operacao."); 
		         	} else {
		        		request.getSession().setAttribute("FuncsEmp",funcsemp);
		        		request.getSession().setAttribute("Deptos",deptos);
		        		setProxPagina("/ListarFuncsEmp.jsp");
		        	}	
	        	} else {
						Departamento depto;// = new Departamento();
	        			int coddep = Integer.parseInt(request.getParameter("cboDepto"));
	        			//deptodesejado.setCodigo(coddep);
	        			depto = DAODepto.consultarDepto(coddep);
	        			Vector funcsdepto; // = new Vector();
						funcsdepto = DAOFunc.listarFuncsDepto(coddep);
		        		if (funcsdepto==null) {
	        				throw new Exception("erro na operacao."); 
		        		} else {
							Funcionario fun;
							for (int i=0; i<funcsdepto.size(); i++){
								fun = (Funcionario) funcsdepto.get(i);	     
							    depto.incluirFuncEmDepto(fun);
							}
				        	request.getSession().setAttribute("Depto",depto);
				        	setProxPagina("/ListarFuncsEmp.jsp");
				        }	
	        	}		
		    } catch(Exception e) {
		        setProxPagina("/Mensagem.jsp?texto="+ e.getMessage()+"operacao=listarFunc");
			} 		                
		}
	}
}
